package com.xt.service;

import com.xt.bean.User;
import com.xt.dto.PermissionDto;
import com.xt.dto.UserListSearchDto;
import org.springframework.data.domain.Page;

/**
 * Created by XT on 2018/5/3.
 */
public interface UserService {

    /**
     * 软删除用户
     * @param userid
     */
    void deleteUser(String userid);

    void InsertSuperAdmin(String pwd);

    /**
     * 保存/更新用户信息
     * @param user
     */
    void saveOrUpdateUser(User user);

    /**
     *根据id获取用户
     * @param id
     */
    User getUserById(String id);

    /**
     * 分页方式获取用户列表
     * @param count
     * @param pageNo
     * @param sortDirection
     * @param sortField
     * @return
     */
    Page<User> getAllUserListByPage(int count, int pageNo, String sortDirection, String... sortField);

    Page<User> getStudentPage(UserListSearchDto ud);

    Page<User> getTeacherPage(UserListSearchDto ud);

    Page<User> getAdminPage(UserListSearchDto ud);

    /**
     *根据工号查找用户
     * @param schoolNumber
     * @return
     */
    User getUserBySchoolNumber(String schoolNumber);

    /**
     * 登陆
     * @param user
     * @return
     */
    User login(User user);

    /**
     * 根据用户ID获取用户所有的信息，角色列表，模块列表
     * @param userid
     * @return
     */
    PermissionDto getPermissionByUserId(String userid);
}
